<?php
/**
 * @version      BOSSCMS-Free
 * @trademark    BOSSCMS
 * @copyright    Copyright © by BOSSCMS-Free (https://www.bosscms.net/) 保留所有权利
 * @license      https://gitee.com/Greenpeas/BOSSCMS/license/ 和 https://www.bosscms.net/freelicense/
 * @link         https://www.bosscms.net/
 * @author       温州软界网络技术有限公司
**/
defined('IS_OK') or exit('Access Forbidden');

into::basic_class('admin');
into::basic_json('navadm');

class shortcut extends admin
{
	public function init()
	{
		global $G;
		$data = json::decode($G['config']['shortcut']);
        $n = count($data);
        foreach($data as $k=>$v){
            $data[$k]['sort'] = $n-$k;
            $data[$k]['name'] = $v['name'];
        }
		echo $this->theme('home/shortcut',$data);
	}
	
	public function modify()
	{
		global $G;
		if(isset($G['post']['id'])){
            $shortcut = json::decode($G['config']['shortcut']);
            $n = count($shortcut);
            $data = array();
            foreach($shortcut as $k=>$v){
                if(in_array($k,$G['post']['id'])){
                    $data[$G['post']['sort'.$k].'.'.$k] = $v;
                }else{
                    $data[$n-$k] = $v;
                }
            }
            krsort($data);
			mysql::select_set(array('name'=>'shortcut','value'=>json::enfilter(array_values($data)),'parent'=>'0','type'=>'1','lang'=>'0'),'config',array('value'));
            alert('修改成功', url::mpf('home','shortcut','init'));
		}else{
			alert('没有提交信息');
		}
	}
	
	public function edit()
	{
		global $G;
		$shortcut = json::decode($G['config']['shortcut']);
        if(isset($G['get']['id'])){
            $data = $shortcut[$G['get']['id']];
        }
        $data['navadm'] = $this->navadm(true);
		echo $this->theme('home/edit',$data);
	}
	
	public function add()
	{
		global $G;
        if($G['post']){
            $data = json::decode($G['config']['shortcut']);
            $arr = array(
                'name' => delFilter($G['post']['name']),
                'link' => delFilter($G['post']['link']),
                'icon' => delFilter($G['post']['icon'])
            );
            if(isset($G['get']['id'])){
                $data[$G['get']['id']] = $arr;
            }else{
                $data[] = $arr;
            }
			mysql::select_set(array('name'=>'shortcut','value'=>json::enfilter($data),'parent'=>'0','type'=>'1','lang'=>'0'),'config',array('value'));
            alert('保存成功', url::mpf('home','shortcut','edit',array('id'=>$id,'success'=>'ok')));
        }
        alert('没有提交信息');
	}
	
	public function delete()
	{
		global $G;
		if(isset($G['post']['url']) && isset($G['get']['id'])){
            $data = json::decode($G['config']['shortcut']);
			$arr = explode(',',$G['get']['id']);
			foreach($arr as $id){
                unset($data[$id]);
			}
			mysql::select_set(array('name'=>'shortcut','value'=>json::enfilter(array_values($data)),'parent'=>'0','type'=>'1','lang'=>'0'),'config',array('value'));
            alert('删除成功',url::mpf('home','shortcut','init',array('id'=>null)));
		}
		alert('没有提交信息');
	}
	
	public function navadm($font=false)
	{
		global $G;
        $data = array();
        foreach($G['navadm'] as $key=>$val){
            foreach($val['child'] as $ke=>$va){
                $data[$key.P.$ke] = $va['name'];
                if(strstr($val['icon'],'plugin')){
                    $res = page::plugin_list();
                    foreach($res as $v){
                        $va['child'][] = array(
                            'mold' => $v['name'],
                            'part' => $v['name'],
                            'name' => arrExist(load::plugin($v['name']),'title')
                        );
                    }
                }
                foreach($va['child'] as $k=>$v){
                    $mp = $v['mold'].($v['part']?'&'.$v['part']:'');
                    if($G['manager']['level']==1 || strstr($G['manager']['permit'],"\"{$mp}\"")){
                        $data[$mp] = ($font?'<font>&nbsp;&nbsp;&#10551;&nbsp;</font>':'').$v['name'];
                    }
                }
            }
        }
        return $data;
    }
}
?>